As one of the steps in the manufacture of an integrated circuit, the integrated circuit is tested to ensure that it functions properly and within established specifications. Typically, an integrated circuit containing logic circuits, such as a microprocessor or a microcontroller, are tested using a logic tester. Logic test vectors are created specifically for the integrated circuit to be tested, and the logic tester tests the integrated circuit using the logic test vectors. Integrated circuits such as static random access memories (SRAMs) or dynamic random access memories (DRAMs), are tested using memory testers. Memory test patterns are generated for testing the integrated circuit memory on the memory tester. Memory test code is generated for applying the memory test patterns to the integrated circuit memory under test.
Some integrated circuits include both logic and memory on the same integrated circuit device. For example, read only memory (ROM) and random access memory (RAM) are commonly included on microprocessors and digital signal processors, and application specific integrated circuit (ASIC) logic may be added to SRAMs. In addition, an integrated cache memory may include a cache controller, a data cache, and a cache TAG on the same integrated circuit as the memory array. A logic intensive integrated circuit memory, such as the integrated cache, may include as many as 20,000 logic gates and 1,000,000 memory cells.
There are software tools available that generate logic test vectors based on the design of a logic circuit for testing the logic circuit on a logic tester, but the logic test vectors are in a format for the logic tester. Some memory testers have the capability of automatically generating memory test patterns for testing a memory array. The memory test code is different from logic test code and memory test patterns are different from logic test patterns. This is because of the architectural differences between memory testers and logic testers.
An integrated circuit having both logic circuits and a memory array on the same integrated circuit device may be tested using a logic tester to test both the memory array (nonintensively) and the logic circuits (intensively). Alternately, the memory array may be tested on the memory tester, and the logic circuits may be tested on the logic tester. However, using both a logic tester and a memory tester to test an integrated circuit device is costly in terms of both time and money. Also, a logic tester is typically much more expensive to purchase than a memory tester.